1. Field of the Invention
The present invention relates to devices, systems, and processes useful in grid computing environments, and more specifically to devices, systems, and processes useful for indicating when a computing device is operating in a grid computing mode and terminating grid computing operations.
2. Brief Description of the Related Art
In general terms, grid computing enables the virtualization of distributed computing and data resources such as processing, network bandwidth, and storage capacity to create a single system image, granting users and applications seamless access to greater capabilities than available to a single computing device alone. In a way similar to how an Internet user views a unified instance of content via the Web, a grid user essentially sees a single, large virtual computer.
A basic aspect of grid computing is that it is based on an open set of standards and protocols, e.g., Open Grid Services Architecture (OGSA) or the like, that enable communication across diverse, heterogeneous, geographically dispersed environments. With grid computing, groups of computing devices can be optimized for computing and data resources, pooling large capacity workloads, sharing such resources across networks, and enabling collaboration.
Grid computing is well known to routineers in the art, and therefore an exhaustive description of grid computing will not be given herein. According to one way of describing grid computing, all or some of a group of computers, servers, and storage are located and addressable across an enterprise are virtualized as one large computing system. Computing grids have the capacity to give access to latent computing and storage power that, at any one time, is not being used, and can therefore afford users of the grid very large gains in power, speed, and collaboration, potentially radically accelerating computationally-intensive processes. Costs can remain low, as grids can be built using existing infrastructure, helping to ensure optimal utilization of computing capabilities.
There may be several states in which a computing device, e.g., a personal computer (PC) operates. These may include ON, OFF, STANDBY, SUSPEND, HIBERNATE, and GRID. In general, for a grid computing environment to operate, there typically is a mechanism or logic implemented by which control of a PC on a network can be usurped by a network entity to do work while the PC is not being used for its primary intended purpose. For example, if a PC in a retail store is connected to a network and left ON overnight, a software element operating on the PC may respond to a grid request from the network and dispatch programs to the PC to do calculations and send the results back to the network. Similarly, if the PC is in STANDBY, SUSPEND, or HIBERNATE, the network can use a “WAKE-ON-LAN” packet or the like to bring the PC out of that state and into the ON state to perform the task. The grid computing tasks tend to be very computationally-intensive and would negatively impact performance if a user was using the PC at the same time; therefore, if a user tries to use the PC, the Grid tasks are usually aborted and are assigned to a different PC on the grid network.
Grid operations must be resilient so that a power failure, disconnect, or other disturbance will not effect the overall outcome of an application. For example, when PCs are used as grid resources during off-hours, in which they are initialized with a specialized operating environment, a problem occurs if the user of that PC decides to use it while the grid has control of the PC. If a PC is booted into a grid operation, it may appear as being off. Given current technology, pressing the power switch will not turn the PC on, as the user may expect, but essentially will turn it off and abruptly terminate the Grid operation.
There remains a need, therefore, for systems, devices, and processes that facilitate the use of computing devices, e.g., PCs, in grid computing environments while providing more information to the PC's user about the use of the PC during grid computing.